1. 项目现状分析
工程铁律: 任何性能优化不得以牺牲稳定性为代价;任何架构优化不得增加系统恢复复杂度。
1.1 当前架构
当前项目采用三级架构:
- 通道(Channel):对应一个采集驱动,管理多个设备
- 设备(Device):具体的设备实例,包含多个点位
- 点位(Point):设备的具体数据点
核心组件:
ChannelManager:通道/设备/点位 CRUD、驱动生命周期;内嵌ScanEngineAdapter注册调度任务(不再 per-devicedeviceLoop)ScanEngine:内核调度器(10ms Tick + PriorityQueue + ResourceController),形成 调度→执行→数据→状态 闭环ExecutionLayer:串行硬隔离(SerialQueueManager)+ 并发背压(ParallelExecutor+BackpressureController)ShadowCore:运行时影子快照真源;ScanEngine 写入后经ShadowBridge扇出至DataPipelineConnectionManager(driver 包):唯一 dial Owner,统一指数退避与 single-flight 重连CommunicationManageTemplate:设备在线/离线/降级状态;ScanEngine 经finalizeScanCollect回写- 多协议 Driver:Modbus、BACnet、OPC UA、S7 等 — 纯执行函数,禁止内部 ticker/goroutine/retry
1.2 现有功能
- 设备状态管理(在线、离线、不稳定等状态)
- 定时数据采集
- 基本的设备指标收集
- 多协议支持
- 设备扫描和点位发现
1.3 存在的问题
(2026-06-30 对照 ScanEngine 重构方案 §9 实现状态)
采集调度分散于各 Driver→ 已解决:ScanEngine 统一调度,CollectionScheduler/deviceLoop已移除Driver 内部 goroutine/ticker/重连→ 部分解决:Modbus/DLT645 已迁移;OpcUa/ENIP 待统一 ConnectionManager- 设备画像(RTT/MTU/Gap)算法模块已有,ExecutionLayer 读路径尚未系统消费
- Scan Class(fast/normal/slow)代码已支持,UI 产品化不足
- 熔断机制、四阶段灰度 DRY_RUN 双跑等待运维验证
- 大规模块读 / Gap 合并未贯通至 Modbus 读路径
1.4 性能瓶颈分析与优化目标
| 维度 | 当前痛点 | 优化目标 | 关键技术 |
|---|---|---|---|
| 延迟 (Latency) | 静态超时/间隔策略导致长尾延迟;网络抖动引起重传风暴。 | 99th 百分位延迟 < 10ms | RTT 动态自适应窗口;EWMA 预测算法;QoS 优先级队列 |
| 吞吐 (Throughput) | 固定 MTU (如 Modbus 250B) 限制大数据块传输;地址分散导致请求碎片化。 | 自适应 MTU (最大支持 4096B) | 智能 MTU 动态协商;Gap 空洞合并算法;零拷贝环形缓冲 |
| 稳定性 (Stability) | 缺乏心跳保活机制,死链检测慢;异常恢复时间长。 | 故障检测 < 3s;自动重连恢复 | 智能业务心跳 (Traffic-Aware Heartbeat);链路层状态机 |
1.5 分层架构重构原则
采用 南向采集 -> 缓存 -> 影子设备 -> 边缘计算 -> 北向上报 的分层处理,并引入影子设备作为唯一内部数据模型中心:
- 采集层 (Collection Layer) — 调度驱动:
- ScanEngine:全局 10ms Tick、优先级堆、防饿死、失败退避
- ExecutionLayer:Serial / Parallel / Limited 三路执行;共享链路
channelMu串行 - Driver:无状态
ReadPoints/WritePoint;连接经ConnectionManager - 优化策略(待闭环):RTT 统计、MTU 协商、Gap 合并反馈至读分片
- 缓存层 (Buffer Layer):
- 使用零拷贝环形缓冲 (Ring Buffer) 存储原始报文。
- 实现 ACK 压缩与重复包过滤。
- 边缘计算层 (Edge Computing Layer):
- 执行 TSL 物模型解析、公式计算、数据清洗。
- 动态调整采集策略 (如降级、加速)。
- 影子设备核心层 (Shadow Core Layer):
- Real Shadow Store:纯内存运行时快照。
- Virtual Shadow Engine:跨设备公式依赖计算。
- Edge Compute Engine:差值/步长/滑动平均/阈值计算。
- Atomic Dispatcher:版本推进 + QoS ACK 机制。
- 北向上报层 (Northbound Layer):
- 数据标准化 JSON/MQTT 上报。
- 提供
COLLECT_CTRL指令通道,支持参数热更新(已实现简单的双向控制功能的基础上优化)。 - 统一鉴权、限流、审计机制。
1.6 当前状态与路线图
主体交付状态、与 Kepware 级差距及 Q3 最高优先级见 ROADMAP.md。工程铁律见 DEVELOPMENT_PRINCIPLES.md。